# 加法运算
import cv2

# 读取图片
cat = cv2.imread('./images/cat.jpg')
dog = cv2.imread('./images/dog.jpg')
print(cat.shape)
print(dog.shape)
# 在做加法前要把图片的形状变得完全一致才行
# 可以通过ndarray的切片方式取出完全一样的形状
new_cat = cat[0:600, 0:1200]
print(new_cat.shape)
# cv2.add 加法操作要求俩个图片的长宽相同，通道数相同
# add的规则就是俩个图对应位置的元素相加，如果超过255，全部变成255
# cv2.add(cat, dog)
# 图片还可以和单个数字进行运算
# 每个和100进行加法运算，超出255的数字，会被截断，相当于%256
# dog += 100
# new_img = cv2.add(new_cat, dog)

# 减法运算
# cv2.subtract 加法操作要求俩个图片的长宽相同，通道数相同
# subtract的规则就是俩个图对应位置的元素相减，如果小于0，全部变成0

# new_img = cv2.subtract(new_cat, dog)

# 乘法运算
# cv2.multiply 加法操作要求俩个图片的长宽相同，通道数相同
# multiply的规则就是俩个图对应位置的元素相乘，如果超过255，全部变成255

# new_img = cv2.multiply(new_cat, dog)

# 除法运算
# cv2.divide 加法操作要求俩个图片的长宽相同，通道数相同
# divide的规则就是俩个图对应位置的元素相除，如果小于0，全部变成0

new_img = cv2.divide(new_cat, dog)

cv2.imshow('new_img', new_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
